The present disclosure relates to computer systems, and more specifically, to client/server based computer systems in which information is transmitted to a client application in a screen-at-a-time based communication protocol.
In client/server computing environments, a client application obtains computing services from a server application, which may, for example, be hosted by a remote server. The client/server model of computing was originally developed to permit so-called “dumb” terminals to provide access to computing resources provided by mainframe computers. The function of the terminal was to receive user input, transmit a request to a mainframe computer, receive a response from the mainframe computer, and format and display data contained in the response for the user. The terminal was not required, and indeed often not able, to perform any substantial data processing.
In many instances, dumb terminals have been replaced with powerful personal computers, including desktop computers, laptop computers, mobile computing devices, etc. However, even with the availability of substantial processing power at the terminal level, client/server computing is still an important computing paradigm, due to the popularity of web-based applications, the utility of the hypertext transfer protocol, and the need to access remote databases for information. Furthermore, many mainframe applications are still in use worldwide. In order to access such applications, terminal emulator programs that can be used to access mainframe computers from personal computers are widely available. For example, a 3270 emulator is a computer program that duplicates the functions of an IBM 3270 mainframe computer terminal.
The IBM 3270 terminal interface is a standard interface designed to enable a terminal to communicate with mainframe computers. Due to restrictions on the memory and computational capacity of early mainframes, as well as restrictions on the amount of bandwidth available for communicating with terminals, the 3270 terminal interface was designed to minimize the amount of data transmitted between the terminal and the mainframe, and to minimize the frequency of interrupts presented to the mainframe.
To address these goals, the IBM 3270 terminal interface was designed to support a “screen-at-a-time” communications model with the terminal. In a “screen-at-a-time” communication model, the mainframe computer transmits an entire screen of data to the terminal at once. The terminal then formats and displays the screen of data for the user according to the 3270 interface. The standard 3270 screen consists of 24 lines of 80 characters each, for a total of 1920 characters. Other 3270 screen sizes were defined, such as 32×80, 43×80 and 27×132.
A screen of 3270 data transmitted from a mainframe to a terminal is referred to as a “data stream,” which is essentially a large block of data. Transferring data in large blocks reduces the number of I/O interrupts that the mainframe must handle. A data stream includes both text and control characters, which allows the terminal to “paint” an entire screen in a single operation. The screen may be divided into clusters of contiguous character cells for which various attributes can be set, such as color, highlighting, character set, protection, etc.
The 3270 interface defines a “read buffer” method that transfers the entire contents of the 3270-screen buffer, including field attributes, to the mainframe. This method is primarily used for debugging purposes. To reduce the amount of data that is transmitted back to the mainframe, the 3270 interface also defines a “read modified” method that transfers back to the mainframe only changes from one or more formatted fields that have been modified by the user, but without sending any unmodified fields or static data. This technique reduces the amount of data that needs to be transmitted, and thereby increases the number of terminals that a mainframe can support.
The Interactive System Productivity Facility (ISPF) is a software product for the z/OS operating system that runs on IBM mainframes. ISPF provides an IBM 3270 terminal interface by means of a set of panels. Each panel may include menus and/or dialogs that provide a user interface. This interface allows a user to execute tools on the mainframe in an underlying time sharing environment using, for example, the Time Sharing Option (TSO) facility. ISPF is frequently used to manipulate z/OS files, referred to as “data sets,” via its Program Development Facility (ISPF/PDF).
While the 3270 interface meets the requirements of low bandwidth and reduced frequency of interrupts that were required for early mainframes, it was defined before the mouse-based graphical user interface (GUI) became popular for use in personal computing. As a text-based interface, the 3270 interface requires substantially more keyboard interaction than a GUI, and may be unfamiliar or difficult to operate for users who are more familiar with a graphical user interface.